package jdbc_practice;

import java.sql.*;

/*

 */
public class PracticeMain2 {
    public static void main(String[] args) {
        Statement statement = null;
        ResultSet resultSet = null;
        Connection connection = null;
        try {
            //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2.定义sql语句
            String sql = "select * from student";
            //3.获取数据库连接对象
            connection = DriverManager.getConnection("jdbc:mysql:///uuuu?serverTimezone=Asia/Shanghai", "root", "root");
            //4.获取执行sql的对象
            statement = connection.createStatement();
            //5.使用对象中的方法执行sql
            resultSet = statement.executeQuery(sql);//返回的是查询的表单对象
            //6.处理执行结果
            while (resultSet.next()){ //使用循环来读取所有表单行，结束条件为 next() 为没有数据（游标指向最后一行，下一行不再有数据）
                // 获取具体的数据
                int anInt = resultSet.getInt(1);//获取第一行第一列的数据
                String bbb = resultSet.getString("bbb");//获取第一行第二列的数据
                String ccc = resultSet.getString("ccc");//获取第一行第三列的数据
                System.out.println(anInt+"--"+bbb+"--"+ccc);
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            //8.释放资源
            /*
                1.提升statement，connection作用域
                2.避免空指针异常，若第3步执行出错，后面的代码就执行不到
             */
            if(statement != null){
                try {
                    statement.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }

            if(statement != null){
                try {
                    statement.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }

            if(resultSet != null){
                try {
                    resultSet.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }
}
